package com.xxxx.server.controller;


import com.xxxx.server.pojo.Joblevel;
import com.xxxx.server.pojo.RespBean;
import com.xxxx.server.service.IJoblevelService;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.lang.reflect.Array;
import java.time.LocalDateTime;
import java.util.Arrays;
import java.util.List;

/**
 * <p>
 * 前端控制器
 * </p>
 *
 * @author HMF
 * @since 2021-07-23
 */
@RestController
@RequestMapping("/system/basic/joblevel")
public class JoblevelController {

    @Autowired
    private IJoblevelService joblevelService;

    @ApiOperation(value = "获取所有职称")
    @GetMapping("/")
    public List<Joblevel> getAllJobLevel() {
        // 直接调用MyBatisPlus提供的list()方法，查询表的所有数据
        return joblevelService.list();
    }

    @ApiOperation(value = "添加职称")
    @PostMapping("/")
    public RespBean addJobLevel(@RequestBody Joblevel joblevel) {
        // 创建时间，后台设置，不用前台传了
        joblevel.setCreateDate(LocalDateTime.now());
        // 调用MyBatisPlus提供的方法save()，添加数据到数据库，通过返回的行数判断是否成功
        if (joblevelService.save(joblevel)) {
            return RespBean.success("添加职称成功！");
        }
        return RespBean.error("添加职称失败！");
    }

    @ApiOperation(value = "更新职位")
    @PutMapping("/")
    public RespBean updateJobLevel(@RequestBody Joblevel joblevel) {
        // 通过MyBatisPlus提供的方法updateById()来更新数据
        if (joblevelService.updateById(joblevel)) {
            return RespBean.success("更新职称成功！");
        }
        return RespBean.error("更新职称失败！");
    }

    @ApiOperation(value = "删除职称")
    @DeleteMapping("/{id}")
    public RespBean deleteJobLevel(@PathVariable Integer id) {
        // 通过MyBatisPlus提供的方法removeById()来通过Id删除数据
        if (joblevelService.removeById(id)) {
            return RespBean.success("删除职称成功！");
        }
        return RespBean.success("删除职称失败！");
    }

    @ApiOperation(value = "批量删除职称")
    @DeleteMapping("/")
    public RespBean deleteJobLevelByIds(Integer[] ids) {
        // 通过MyBatisPlus提供的方法removeByIds()来批量删除数据，记得把集合转为List
        if (joblevelService.removeByIds(Arrays.asList(ids))) {
            return RespBean.success("批量删除职称成功！");
        }
        return RespBean.success("批量删除职称失败！");
    }

}
